<template>
	<view class="classlist">
		<view class="loadingLayout" v-if="!classList.length && !noData">
			<uni-load-more status="loading"></uni-load-more>
		</view>
		<view class="content">
			<navigator :url="'/pages/preview/preview?id='+item._id" class="item" v-for="item in classList" :key="item._id">
				<image :src="item.smallPicurl" mode="aspectFill"></image>
			</navigator>
		</view>
		<view class="loadingLayout" v-if="classList.length || noData">
			<uni-load-more :status="noData?'noMore':'loading'"></uni-load-more>
		</view>
		<view class="safe-area-inset-bottom"></view>
	</view>
</template>

<script setup>
import { ref } from 'vue';
import {onLoad, onUnload, onReachBottom,onShareAppMessage,onShareTimeline} from "@dcloudio/uni-app"
import { apiGetClassList,apiGetHistoryList } from '../../api/apis';
import { gotoHome } from '../../utils/common';
	const classList = ref([])
	let noData = ref(false)
const queryParams = {
	pageNum:1,
	pageSize:12
}

let pageName;

	onLoad((e) => {
		let {classid,name,type} = e;
		if(type){
			queryParams.type=type
		}
		if(classid){
			queryParams.classid = classid;
		}
		if(!classid && !type){
			gotoHome()
		}
		pageName = name
		uni.setNavigationBarTitle({
			title:name
		})
		getClassList();
	})
	
	onReachBottom(()=>{
		if(noData.value) return;
		queryParams.pageNum++;
		getClassList();
	})
	
	const getClassList = async () => {
		let res;
		if(queryParams.classid){
			res = await apiGetClassList(queryParams);
		}else if(queryParams.type){
			res = await apiGetHistoryList(queryParams);
		}
		
		
		if(queryParams.pageSize > res.data.length){
			noData.value = true;
		}
		classList.value.push(...res.data);
		uni.setStorageSync("storeClassList", classList.value);
		
	}
	
	//分享给好友
	onShareAppMessage((e)=>{
		return {
			title:"咸虾米壁纸-"+pageName,
			path:"/pages/classlist/classlist?classid="+queryParams.classid+"&name="+pageName
		}
	})
	
	//分享到朋友圈
	onShareTimeline((e)=>{
		return{
			title:"咸虾米壁纸-"+pageName,
			query:"classid="+queryParams.classid+"&name="+pageName
		}
	})
	
	onUnload(()=>{
		uni.removeStorageSync("storeClassList")
	})
</script>

<style lang="scss" scoped>
.classlist{
	.content{
		display: grid;
		grid-template-columns: repeat(3,1fr);
		gap: 5rpx;
		padding: 5rpx;
		.item{
			height: 440rpx;
			image{
				width: 100%;
				height: 100%;
				display: block;
			}
		}
	}
}
</style>
